工控网首页
>

应用设计

>

HT-7超导托卡马克限制器温度数据的快速采集与管理方案

HT-7超导托卡马克限制器温度数据的快速采集与管理方案

2004/11/29 11:58:00
[摘 要]针对HT-7超导托卡马克实验的具体要求,对与等离子体直接接触的限制器表面温度实现了快速监测与存储。介绍了该微弱信号采集系统的具体实现方法与抗干扰措施。重点论述了一种基于VB6.0、组态软件、DDE(动态数据交换)及ODBC(开放数据库联接)技术的有效、灵活的采集方案,实现了实验数据的高频记录、按次自动存储和快速查询。 [关键词]HT-7限制器;数据采集;ODBC;组态软件;DDE 1 引言 受控核聚变物理实验是对人类未来新能源的探索,中国科学院等离子体物理研究所的HT-7超导托卡马克装置是我国第一个超导托卡马克核聚变实验装置。而水冷石墨限制器则是该装置的重要组成部分之一,它是放电过程中,等离子体所直接接触的部件。限制器表面温度变化是由等离子体能量沉积引起的一种表现形式,当限制器受到等离子体高能轰击时,温度便急剧上升。因此,在等离子体放电过程中实现限制器表面温度的实时与连续采集,对于分析能量沉积、判断等离子体的位移偏差有着重要的作用。本文从工程应用的实际出发,介绍了一种灵活可靠、方便易用的数据采集和管理系统。该系统实现了微弱信号的高精度实时采集;建立了局域网内不同系统间的通信连接;解决了海量数据的按次自动存储与快速查询的问题。 2 系统的构建 2.1系统的特点及功能要求 (1)监测界面 在HT-7托卡马克装置中,环向、极向限制器依不同的方位分布在真空室器壁之上。要求系统监测界面突出显示测量点的相对位置,从时空上均能观察到对应点的温度。 (2)高精度快速采集 限制器的温度变化通过WRKK凯装热电偶 (镍铬-镍硅型)来测量,该热电偶的反应时间为100ms,输出2~50mv微弱电压信号。要求采集系统以毫秒级的巡检周期实现对多路(64点)弱信号的实时准确采集。 (3)数据管理 HT-7实验以炮号作为每次脉冲放电的记录号。要求数据能按炮号存入数据库中,系统可以自动将每炮数据创建为独立的文件,并实现快速查询的功能,同时文件的存储形式要有利于数据的分析。 (4)网络通信 限制器温度采集计算机位于HT-7控制子网内,数据的存储要受总控放电时序的控制,放电炮号的获取要访问炮号服务器,放电脉冲长度要访问总控计算机。因此要求该系统应具有可靠的网络通信功能。 (5)抗干扰能力 装置放电运行和实验期间有较强的电磁幅射存在。为了保证弱电信号采集的准确度,要求系统具有抗干扰能力。 2.2系统硬件配置与结构 计算机是数据采集系统的平台,本系统从抗干扰的角度出发,选用研华IPC-610,14槽(ISA槽10个)架装工控机作为主机。以8块ADVANTECH插入式数据采集与控制卡PCL818HG作为采集设备。这种ISA总线多功能高增益数据采集卡无需外部信号调理板,就可以对低电平的热电偶信号直接采集。该卡具有每秒100K采样速率,每通道增益(可达1000)可编程,64路热电偶信号以差分形式接入带CJC电路的接线端子板PCLD-8115。系统结构如图1所示。
3 系统功能的实现 限制器温度采集系统在Windows2000操作系统下以工控组态软件“组态王6.5”为软件开发平台,巧妙地利用了Visual Basic语言、DDE及ODBC技术。为了实现系统功能,将整个采集系统分作三大模块:监测模块、通信模块、数据管理模块, 其中数据管理模块,即数据存储和查询是文章的核心。建立系统具体的功能框图如图2所示:
3.1采集与监测的实现 “组态王6.5”是运行在WindowsNT/2000/XP中文操作系统上的一种组态软件。它具有完善、先进的图形界面生成功能,可以形象逼真地描绘工业现场,提供了丰富的数据类型、类C语言的命令语言、功能齐备的控件和控件函数以及多种I/O驱动程序,是创建人机界面的便利开发工具。系统采集与监测通过组态软件完成了以下工作: (1)友好的监测界面。灵活运用了组态软件的图库精灵,并通过位图拷贝的方法完美地结合了Photoshop强大的图形处理功能。依现场设备的布局制作出有利于分析与监测的友好画面。 (2)现场数据的获取与动态显示。“组态王”通过访问板卡的I/O地址直接与其进行数据交换。借助组态软件的动画连接功能,将采集温度依低、中、高进行划分,并以不同的颜色表示;通过设置画面闪烁来达到报警的目的。利用软件的实时趋势曲线快速反应温度随时间的变化。 3.2网络通信的实现 通信模块主要是指系统在运行中与HT-7总控和炮号服务器之间基于TCP/IP通信协议的数据传输。主要包括实时获取总控对放电预设时间的更改以及每次放电开始时对本炮记录号的读取。 3.2.1组态王网络通信的局限性 TCP/IP(传输控制协议/网间协议)是一种网络通信协议。本系统在对TCP/IP的网络应用中,采用Client/Server模式,组态王在网络功能上也是一种真正的Client/Server模式,可运行在基于TCP/IP网络协议的网络上。然而,要实现组态王的网络功能,则要求客户机和服务器必须安装并同时运行组态王。由于本系统内HT-7总控是基于VC++软件的,而炮号服务器则是在Linux操作系统下由C语言编程实现的。因此,仅通过组态王软件的网络功能,无法实现本系统的网络通信。 3.2.2基于VB和DDE技术的解决方法 组态王软件提供的DDE功能为解决这一问题提供了途径。DDE是Windows操作系统提供的一种数据交换技术,是Windows环境下应用程序之间进行通讯的一种手段。它使得两个应用程序能够自动连续地交换数据。组态王支持动态数据交换DDE,能够和其他支持DDE的应用程序方便地交换数据。通过DDE,工程人员可以利用PC机丰富的软件资源来扩充组态王的功能。 Visual Basic 6.0作为一种快速的Windows程序开发工具,同样支持DDE应用程序的开发,并且具有强大的网络通信功能。本系统利用VB实现网络通信,采用DDE方式将通信数据自动地传送给组态王。实现了对组态王网络功能的扩充。 (1)VB实现网络通信 VB提供了基于Windows Sockets网络编程接口的Winsock控件,使得开发TCP/IP应用变得简单轻松。TCP/IP协议具有TCP和UDP两种通信方式。TCP是一种面向连接的服务,它在两个主机之间建立连接,提供双向、有序且无重复的数据流服务。本系统则从可靠性的角度采用TCP方式进行通信。在VB通信窗体中添加三个Winsock控件,通过对其属性的设置以及触发事件过程的相应处理,轻松实现了本机与HT-7总控和炮号服务器之间点对点的通信。 (2)组态王通过DDE访问VB 组态王作为DDE的客户程序向VB请求数据,获取VB的通信结果。VB作为服务程序,其DDE连接是通过设置窗体的LinkTopic、LinkItem、LinkMode来实现的,其中LinkMode属性设置为1(source);组态王则需定义DDE设备及变量,在变量定义中其连接设备为已定义的DDE设备,项目名为VB中用来接收通信数据的控件。 (3)VB程序嵌入组态王 VB和组态王分别建立了两个不同的应用程序,通过在组态王应用程序命令语言的启动下调用StartApp()函数和ReBuildUnConnectDDE()函数,确保组态王启动时自动打开VB开发的应用程序,并重建未成功的DDE连接。另外,还可以考虑对VB窗体的隐含。实现VB与组态的完美结合。 3.3数据存储与管理方案 3.3.1问题的提出 在组态王6.5版本中数据采集频率可设定为毫秒级,数据保存可按“定时记录” 和“数据变化记录” 两种方式。其中“定时记录”方式最快的数据保存频率是1个/分;而“数据变化记录”方式虽可实现数据毫秒级高速存储和数据压缩,但是,如果直接利用组态王所提供的历史报表,通过ReportsetHistData()函数进行数据查询时,其查询数据的最小时间间隔只能为1秒钟。当实际要求以固定毫秒级时间间隔实现数据的按次存储与按次查询时,简单、直接地使用组态王是无法实现的。 3.3.2问题的解决 ODBC是一种用来在相关或不相关的数据库管理系统中存取数据的标准应用程序设计接口(API),可以实现不同数据库系统的互连访问。ODBC是一种使用SQL的程序设计接口,因此,可以使用组态王的SQL访问功能实现组态王和其他ODBC数据库之间的数据传输。 组态王与其他外部数据库(支持ODBC访问接口)进行数据传输时,首先要在系统ODBC数据源中添加数据库,然后通过组态王SQL访问管理器和SQL函数实现各种操作。针对系统高频记录、按次存储与按次查询的要求,以本系统为例,给出以下具体的解决方案: (1)建立ODBC数据库 组态王和其他外部数据库实现数据传输时必须在系统ODBC数据源中定义相应数据库。本系统将Microsoft Access数据库作为组态王的外部数据库,首先建立一个Access数据库,然后在控制面板下的“ODBC数据源(32位)”选项内创建新数据源,选择“Mirosoft Access Driver”。 (2)建立表格模板与记录体 SQL访问管理器用来建立数据库列和组态王变量之间的联系。包括表格模板和记录体两部分功能。通过表格模板在数据库表中建立表格;通过记录体建立数据库表格列和组态王之间的联系,表格模板和记录体都是在工程浏览器中建立的。 (3)数据以记录体形式插入数据库 在本系统中,每一个采集周期就有64个监测数据从采集卡进入计算机,如果将这64个数据逐个从内存转入存储介质上,系统运行中将频繁地进行磁盘操作,会降低程序的执行效率。由于组态王允许通过记录体直接操纵数据库中的数据,所以,可以将一个采样周期的64个数据作为一个记录体,然后由组态王直接将该记录体插入数据库内。部分程序如下: 在组态王的事件命令语言内写如下类C程序: 实验开始时: SQLConnect(DeviceID,"dsn=mine;uid=;pwd="); //连接数据库 SQLClearTable(DeviceID,"table1");  //清除数据库表格内容 FileDelete( "d:\my1.xls"); //删除上次实验access输出的原文件 float baocun; baocun=\\
投诉建议

提交

查看更多评论